In integrated circuits there are often a substantial number of flip-flops, and related types of circuits, such as buffers and registers. Generally, each flip-flop has a clock input C, a data input D, and a data output Q. The flip-flop is disposed so that when the clock input C is changed, the data input D is stored in the flip-flop, with the effect that the value of data output Q will be set, on the next cycle of the clock input C, to the value of data input D. Due to the design of these circuits and the nature of the transistors used in that design, each flip-flop consumes dynamic power when used, even if the new value Dt+1 stored in the flip-flop does not change from its old value Dt.
Known systems include those which disable entire subunits of a chip when not in use, e.g., a processor might disable clocking of its floating point sub-processor when that unit is not needed. One such system is taught in U.S. Pat. No. 5,025,387 (Frane), in which an MPU generates a HALT signal, which is used to “disable” its own clock. In Frane, to “disable” the clock signal means that the clock signal is still generated and used, but at a lower frequency that the rest of the circuit. Lowering the frequency of the clock signal reduces the number of times each flip-flop in the MPU must actually change state (and thus consume power).
U.S. Pat. No. 7,095,251 B2 (Wilcox et al.) states that disabling entire registers of flip-flops is known, including detecting those entire registers whose value does not change, and inserting circuit elements to disable those registers in response to those circumstances, at least in those cases where the register is large enough to justify the additional circuit elements. Wilcox shows a system which mixes full-cycle gating and half-cycle gating, which might allow for finer control of area and power consumption.
Wilcox mentions the possibility of comparing a flip-flop's output with its input using an XOR gate, or other logically equivalent circuits, but states that such an approach suffers from too many drawbacks to be practical.